package tec;

public class JournalBus extends Bus implements Transport{
	
    Bus bus;    
    Journal journal;
    
    public JournalBus(int nbPlaceAssise, int nbPlaceDebout, Journal journal) throws TecInvalidException{
		this.journal=journal;
		journal.fixerMaxPlace(nbPlaceAssise, nbPlaceDebout);
		bus = new Autobus(nbPlaceAssise,nbPlaceDebout);
    }

    public void allerArretSuivant() throws TecInvalidException {
		bus.allerArretSuivant();
		journal.changerArret();
    }

    public boolean aPlaceAssise() {
		return bus.aPlaceAssise();
    }

    public boolean aPlaceDebout() {
		return bus.aPlaceDebout();
    }

    void demanderChangerEnAssis(Passager p) {
		if(bus.aPlaceAssise())
			{
			journal.enleverUnDebout();
			}
		bus.demanderChangerEnAssis(p);
    }

    void demanderChangerEnDebout(Passager p) {
		if(bus.aPlaceDebout())	    
	    {
			journal.enleverUnAssis();
	    }
		bus.demanderChangerEnDebout(p);
    }

    void demanderPlaceAssise(Passager p) {
		
		bus.demanderPlaceAssise(p);
		journal.ajouterUnAssis();
    }

    void demanderPlaceDebout(Passager p) {
		bus.demanderPlaceDebout(p);
		journal.ajouterUnDebout();
    }

    void demanderSortie(Passager p) {
		bus.demanderSortie(p);
		journal.enleverUnPassager();
    }

    @Override
	public String toString()
    {
		return bus.toString();		
    }	
}